home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / validation / ContentModelPatternTerm.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  2.7 KB  |  74 lines

  1. package com.extensibility.validation;
  2.  
  3. import com.extensibility.util.Debug;
  4. import com.extensibility.util.regexpr.PatternTerm;
  5. import com.extensibility.xml.ContentModelTerm;
  6. import com.extensibility.xml.NamespaceDeclaration;
  7. import com.extensibility.xml.SchemaIntf;
  8. import java.util.Enumeration;
  9.  
  10. class ContentModelPatternTerm implements PatternTerm {
  11.    protected String namespace;
  12.    protected ContentModelTerm modelTerm;
  13.  
  14.    public ContentModelPatternTerm(String var1, ContentModelTerm var2) {
  15.       this.namespace = var1;
  16.       this.modelTerm = var2;
  17.    }
  18.  
  19.    public boolean isSeq() {
  20.       return this.modelTerm.isSeq();
  21.    }
  22.  
  23.    public boolean isChoice() {
  24.       return this.modelTerm.isChoice();
  25.    }
  26.  
  27.    public boolean isGroup() {
  28.       return this.isChoice() || this.isSeq();
  29.    }
  30.  
  31.    public Enumeration getPatternTerms() {
  32.       return new 1(this);
  33.    }
  34.  
  35.    protected String getTermQualifiedName() {
  36.       String var1 = this.modelTerm.getTerm();
  37.       if (var1.startsWith("#")) {
  38.          return var1;
  39.       } else {
  40.          int var2 = var1.indexOf(":");
  41.          String var3 = var2 == -1 ? null : var1.substring(0, var2);
  42.          if (var3 == null) {
  43.             return this.namespace != null && !this.namespace.equals("") ? String.valueOf(String.valueOf(this.namespace).concat(String.valueOf(":"))).concat(String.valueOf(var1)) : var1;
  44.          } else {
  45.             SchemaIntf var4 = this.modelTerm.getOwner().asDecl().getSchema();
  46.             NamespaceDeclaration var5 = var4.getNamedNamespace(var3);
  47.             return var5 != null && var5.getNamespace() != null ? String.valueOf(var5.getNamespace()).concat(String.valueOf(var1.substring(var1.indexOf(":")))) : var1;
  48.          }
  49.       }
  50.    }
  51.  
  52.    public boolean matches(String var1) {
  53.       Debug.assert(!this.isGroup());
  54.       return var1.equals(this.getTermQualifiedName());
  55.    }
  56.  
  57.    public boolean intersects(PatternTerm var1) {
  58.       ContentModelPatternTerm var2 = (ContentModelPatternTerm)var1;
  59.       return !this.isGroup() && !var2.isGroup() && this.matches(var2.getTermQualifiedName());
  60.    }
  61.  
  62.    public int getMinOccurrence() {
  63.       return this.modelTerm.getMinOccurrence();
  64.    }
  65.  
  66.    public int getMaxOccurrence() {
  67.       return this.modelTerm.getMaxOccurrence();
  68.    }
  69.  
  70.    public String toString() {
  71.       return this.modelTerm.getTerm();
  72.    }
  73. }
  74.